Auto-switching communication interface

ABSTRACT

A touch detection system in accordance with one embodiment of the invention can include a circuit for converting a capacitance to a digital value. The touch detection system can include first and second communication interface circuits for enabling a first and second communication protocols, respectively. Furthermore, the touch detection system can include a detector circuit coupled to the first communication interface circuit and the second communication interface circuit. The detector circuit can be for automatically detecting a factor that indicates automatically enabling the first communication interface circuit and automatically disabling the second communication interface circuit. The detector circuit can be for detecting a coupling of a pin of the first communication interface circuit that is not used by the second communication interface circuit.

RELATED APPLICATION

This application is a continuation in part of U.S. application Ser. No. 14/611,910, filed Feb. 2, 2015 which is a continuation Application of U.S. application Ser. No. 13/680,593, filed Nov. 19, 2012, now U.S. Pat. No. 8,949,478, issued Feb. 3, 2015 which is a continuation of U.S. application Ser. No. 12/005,774, filed Dec. 28, 2007, which claims the benefit of U.S. Provisional Application No. 60/906,605, filed Mar. 12, 2007 all of which are incorporated by reference in their entirety.

BACKGROUND

Touch controller must be able to communicate touch information to a host controller or other external processing unit to enable the user interface. Currently in the market there exist manufacturers of serial peripheral devices that include a communication bus interface. For example, a manufacturer may incorporate a serial peripheral device with either an Inter-Integrated Circuit (I²C) communication bus interface or a Serial Peripheral Interface (SPI) bus, wherein each interface has a different pin count. Given this situation, conventionally suppliers of serial peripherals maintain and sell a different device for each interface. For instance, the conventionally suppliers of serial peripherals can have one part number for an I²C interface serial peripheral and another part number for a Serial Peripheral Interface peripheral. Unfortunately, this leads to inventory issues as many different serial peripherals are maintained, supported, and the like. Employing two complete peripherals or communication circuits may complicate touch controller circuits even more than they already are.

SUMMARY

A touch detection system in accordance with one embodiment of the invention can include a circuit for converting a capacitance to a digital value. The touch detection system can include first and second communication interface circuits for enabling a first and second communication protocols, respectively. Furthermore, the touch detection system can include a detector circuit coupled to the first communication interface circuit and the second communication interface circuit. The detector circuit can be for automatically detecting a factor that indicates automatically enabling the first communication interface circuit and automatically disabling the second communication interface circuit. The detector circuit can be for detecting a coupling of a pin of the first communication interface circuit that is not used by the second communication interface circuit.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is schematic diagram of an exemplary intelligent serial interface circuit in accordance with various embodiments of the invention.

FIG. 2 is schematic diagram of an exemplary single-time detector circuit in accordance with various embodiments of the invention.

FIG. 2A is schematic diagram of an exemplary analog detector circuit in accordance with various embodiments of the invention.

FIG. 3 is schematic diagram of an exemplary continuous detector circuit in accordance with various embodiments of the invention.

FIG. 4A is a block diagram of an exemplary system in accordance with various embodiments of the invention.

FIG. 4B is a block diagram of another exemplary system in accordance with various embodiments of the invention.

FIG. 5 is a flow diagram of an exemplary method in accordance with various embodiments of the invention.

FIG. 6 illustrates a touchscreen system, according to one embodiment.

FIG. 7 illustrates a flow of information and control signals in a capacitance sensing system, according to one embodiment.

FIG. 8 illustrates an array of bar-shaped electrodes arranged in a two dimensional array, according to one embodiment.

DETAILED DESCRIPTION

Reference will now be made in detail to various embodiments in accordance with the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with various embodiments, it will be understood that these various embodiments are not intended to limit the invention. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the scope of the invention as construed according to the Claims. Furthermore, in the following detailed description of various embodiments in accordance with the invention, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be evident to one of ordinary skill in the art that the invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the invention.

Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present detailed description, discussions utilizing terms such as “detecting”, “generating”, “determining”, “transmitting”, “disabling”, “performing”, “enabling”, “programming”, “utilizing”, “incorporating”, “producing”, “retrieving”, “outputting”, or the like, can refer to the actions and processes of a computer system or electronic computing device, but is not limited to such. The computer system or electronic computing device can manipulate and transform data represented as physical (electronic) quantities within the computer system's registers and/or memories into other data similarly represented as physical quantities within the computer system memories and/or registers or other such information storage, transmission, or display devices. Some embodiments of the invention are also well suited to the use of other computer systems such as, for example, optical and virtual computers.

FIG. 1 is schematic diagram of an exemplary intelligent serial interface circuit 101 in accordance with various embodiments of the invention. Note that the intelligent serial interface circuit 101 can be implemented as part of an integrated circuit 100. The intelligent serial interface circuit 101 can include multiple serial communication bus interfaces, can automatically detect which one is being used within a circuitry or host system (e.g., memory, EEPROM, and the like), and then enable the supported protocol for communication. The intelligent serial interface circuit 101 can include, but is not limited to, a detector circuit 114, a Serial Peripheral Interface (SPI) bus slave interface circuit 102, an Inter-Integrated Circuit (I²C) communication bus slave interface circuit 106, and an inverter circuit 110.

Specifically, the intelligent serial interface circuit 101 can include, but is not limited to, an I²C communication bus slave interface circuit 106 and also a SPI bus slave interface circuit 102, each for implementing their own protocol separately. It is noted that the I²C slave interface circuit 106 and the SPI slave interface circuit 102 have a different number of input and output couplings (or pin counts). As such, in an embodiment, the intelligent serial interface circuit 101 can utilizes that difference to automatically detect which communication bus interface circuit is being used within a host system and then enable that protocol for bus communication. For example, the SPI slave interface circuit 102 includes an output for transmitting a Master Input/Slave Output (MISO) signal 112 and an input for receiving a Slave Select signal (SS-bar) 116, both of which the I²C slave interface circuit 106 does not include. As such, in one embodiment, the detector circuit 114 can be coupled to the SPI slave interface circuit 102 in order to receive the MISO signal 112. Also, the detector circuit 114 can be coupled to output the MISO signal 112 to the MISO pin 126 of the integrated circuit 100. The detector circuit 114 can compare the load on the MISO pin 126 with the received MISO signal 112 in order to detect whether or not the intelligent serial interface 101 is configured or coupled for SPI operation or I²C operation.

Within FIG. 1, in an embodiment, it is pointed out that if the I²C slave interface circuit 106 of the intelligent serial interface 101 is to be utilized and active within a host system, the MISO pin 126 and the SS pin 128 of the integrated circuit 100 will not be used and can thus be coupled to power or ground within the host system. Alternatively, if the SPI slave interface circuit 102 of the intelligent serial interface 101 is to be utilized and active within a host system, the MISO pin 126 and the SS pin 128 of the integrated circuit 100 can be coupled over a SPI bus to other components (e.g., a SPI Master) on the SPI bus. As such, if data contention is observed by the detector circuit 114 between the received MISO signal 112 and the voltage of the MISO pin 126, then the detector circuit 114 can enable the SPI slave interface 102 and disable the I²C slave interface 106. Specifically, in an embodiment, the detector circuit 114 can output a logic 1 signal to the enable input 104 of the SPI slave interface 102, thereby enabling the SPI slave interface 102. Additionally, the logic 1 signal output by the detector circuit 114 can be received by the inverter circuit 110. The inverter circuit 110 can convert the received logic 1 signal into a logic zero signal, which the inverter 110 can output to the enable input 108 of the I²C slave interface 106, thereby disabling the I²C slave interface 106. Note that the detector circuit 114 can detect contention between the MISO signal 112 and any other signal that would be on the SPI bus via the MISO pin 126.

In an embodiment, the I²C slave interface circuit 106 can be coupled to a clock pin 130 of the integrated circuit 100 to receive an I²C Serial Clock (SCL) signal 122 from an I²C master device while the SPI slave interface circuit 102 can also be coupled to the clock pin 130 to receive a SPI Serial Clock (SCK) signal 118 from a SPI master device. Also, in one embodiment, the I²C slave interface circuit 106 can be coupled to a data pin 132 of the integrated circuit 100 to receive an I²C Serial Data (SDA) signal 124 from an I²C master device while the SPI slave interface circuit 102 can also be coupled to the data pin 132 to receive a Master Output/Slave Input (MOSI) signal 120 from a SPI master device. The SPI slave interface 102 can be coupled to a Slave Select pin 128 of the integrated circuit 100 to receive the SS-bar signal 116 from a SPI master device.

It is pointed out that one of the advantages of the intelligent serial interface 101 is that it can be cost effective to implement and it uses just 4 pins, but is not limited to such. In one embodiment, it is noted that the intelligent serial interface 101 can enable a semiconductor supplier to sell a single part that can include multiple different communication interfaces having an automatic detection functionality. Furthermore, the intelligent serial interface 101 can enable a customer to buy a single device that can be automatically be utilized with multiple different communication interfaces. Moreover, the intelligent serial interface 101 can enable an end product manufacturer to have one part on inventory that can cover multiple different communication interfaces, which can reduce the amount of inventory and can reduce the risk of not being able to get supply.

Within FIG. 1, a first terminal of the detector 114 can be coupled to the MISO pin 126 of the integrated circuit 100 while a second terminal of the detector 114 can be coupled to the enable input 104 of the SPI slave interface 102 and to an input terminal of the inverter 110. Note that a portion of a SPI bus can be coupled to the MISO pin 126 of the integrated circuit 100, but is not shown. A third terminal of the detector 114 can be coupled to receive the MISO 112 from a second terminal of the SPI slave interface 102. A third terminal of the SPI slave interface 102 can be coupled to the Slave Select pin 128 of the integrated circuit 100 in order to receive the SS-bar signal 116. A portion of a SPI bus can be coupled to the Slave Select pin 128, but is not shown. Furthermore, a fourth of the SPI interface 102 can be coupled to the clock pin 130 for receiving the SCK signal 118 while a fifth terminal of the SPI interface 102 can be coupled to the data pin 132 for exchanging MOSI 120. It is noted that a portion of a SPI bus can be coupled to each of the clock pin 130 and the data pin 132 of the integrated circuit 100. The enable input 108 of the I²C interface 106 can be coupled to an output terminal of the inverter 110. A second interface of the I²C interface 106 can be coupled to the clock pin 130 of the integrated circuit 100 for exchanging the SCL 122. Additionally, a third interface of the I²C interface 106 can be coupled to the data pin 132 of the integrated circuit 100 for exchanging SDA 124.

Within FIG. 1, it is understood that the intelligent serial interface 101 may not include all of the elements illustrated by FIG. 1. Additionally, the intelligent serial interface 101 can be implemented to include one or more elements not illustrated by FIG. 1.

FIG. 2 is schematic diagram of an exemplary single-time detector circuit 200 in accordance with various embodiments of the invention. It is pointed out that most digital devices have some kind of power-on reset circuitry, such as, an external reset interrupt with input or some internal voltage supervisory function. As such, when a reset signal 208 is produced in association with that digital device and it comes out of reset, the single-time detector circuit 200 can be coupled to receive the reset signal 208. The reset signal 208 can cause the detector circuit 200 to automatically make a single-time (or one-time) determination as to which communication bus interface (e.g., 102 or 106) is being used by the digital device or circuitry or host system (e.g., memory). In an embodiment, the single-time detector circuit 200 is just active upon a power-on reset, but is not limited to such. It is pointed out that the elements of FIG. 2 having the same reference numbers as the elements of any other figure can operate or function in any manner similar to that described herein, but are not limited to such. In an embodiment, the single-time detector circuit 200 can be an implementation of the detector circuit 114 of FIG. 1.

Specifically, an input/output (I/O) driver circuit 202 and an exclusive OR (XOR) logic gate 204 of the single-time detector circuit 200 can be coupled to the SPI slave interface 102 in order to receive the MISO signal 112 output by it. In an embodiment, in the default state of the intelligent serial interface 101, the SPI slave interface 102 can be enabled and it can drive or output the MISO signal 112. As such, the single-time detector 200 can perform a comparison between the received MISO signal 112 and the actual voltage on the MISO pin 126. Specifically, the XOR gate 204 can compare the received MISO signal 112 and the actual voltage on the MISO pin 126. If they are different, that can mean that the SPI slave interface 102 is trying to drive the MISO pin 126 in one voltage direction with the MISO signal 112 but the voltage on the MISO pin 126 will not change, which can mean that the MISO pin 126 has been coupled to power or ground since it is not in use. As such, in an embodiment, the single-time detector circuit 200 can disable the SPI slave interface 102 and enable the I²C slave interface 106. However, if the XOR gate 204 compares the received MISO signal 112 and the actual voltage on the MISO pin 126 and they are substantially the same, that can mean that the MISO pin 126 has been coupled to be used with the SPI slave interface 102. As such, in an embodiment, the single-time detector circuit 200 can keep the SPI slave interface 102 enabled while it can disable the I²C slave interface 106.

More specifically within FIG. 2, if the received MISO signal 112 and the actual voltage on the MISO pin 126 are substantially the same, the XOR gate 204 can output a logic 0 signal, which can be received by the D input of the D flip-flop 206. On receipt of the reset signal 208 at the clock (CLK) input of the D flip-flop 206, the Q-bar output of the D flip-flop 206 can output a logic 1 signal, which can be sent to the inverter 110 and the enable input 104 of the SPI slave interface 102. As such, the SPI slave interface 102 can be enabled while the I²C slave interface 106 can be disabled. However, if the received MISO signal 112 and the actual voltage on the MISO pin 126 are different, it can mean that the MISO pin 126 has been coupled to power or ground since it is not being used. As such, the XOR gate 204 can output a logic 1 signal, which can be received by the D input of the D flip-flop 206. On receipt of the reset signal 208 at the CLK input of the D flip-flop 206, the Q-bar output of the D flip-flop 206 can output a logic zero signal, which can be sent to the inverter 110 and the enable input 104 of the SPI slave interface 102. Therefore, the SPI slave interface 102 can be disabled while the I²C slave interface 106 can be enabled. It is pointed out that using the reset signal 208 into the CLK input of the D flip-flop 206 can result in the detector circuit 200 making a one time determination at the release of reset signal 208.

It is pointed out that the I/O driver (or line driver) circuit 202 can be implemented in a wide variety of ways. For example, in an embodiment in accordance with the invention, the I/O driver circuit 202 can be implemented as a fairly weak driver circuit capable of driving single digit milliamperes either high or low, but is not limited to such. In accordance with this embodiment, it is pointed out that if the I/O driver circuit 202 was coupled externally to power or ground, there would be some current flow, but it would just be a few milliamperes.

Within FIG. 2, the D input of the D flip-flop 206 can be coupled to the output of the XOR gate 204 while the clock input of the D flip-flop 206 can be coupled to receive the reset signal 208. Additionally, the Q output of the D flip-flop 206 can be coupled to an input terminal of the inverter 110 and also to the enable input 104 of the SPI slave interface 102. An input terminal of the I/O driver 202 can be coupled to receive the MISO signal 112 output from the SPI slave interface 102. An output terminal of the I/O driver 202 can be coupled to the MISO pin 126 of the integrated circuit 100. Furthermore, the output terminal of the I/O driver 202 can be coupled to a first input terminal of the XOR gate 204 while a second input terminal of the XOR gate 204 can be coupled to receive the MISO signal 112 output from the SPI slave interface 102.

Within FIG. 2, it is understood that the “single-time” (or “one-time”) detector 200 may not include all of the elements illustrated by FIG. 2. Additionally, the “single-time” detector 200 can be implemented to include one or more elements not illustrated by FIG. 2.

FIG. 2A is schematic diagram of an exemplary analog detector circuit 250 in accordance with various embodiments of the invention. It is pointed out that the elements of FIG. 2A having the same reference numbers as the elements of any other figure herein can operate or function in any manner similar to that described herein, but are not limited to such. The analog detector circuit 250 can include, but is not limited to, a sense resistor 252, a drive buffer 254, a comparator 256, and a de-glitch circuit (or glitch filter or low pass filter) 258. Specifically, an input of the drive buffer 254 can be coupled to receive the MISO signal 112 from the SPI slave interface 102 while an output of the drive buffer 254 can be coupled to a first terminal of the sense resistor 252 and a first input of the comparator 256. A second terminal of the sense resistor 252 can be coupled to a second input of the comparator 256 and to the pin 126. An output of the comparator 256 can be coupled to an input of the de-glitch module 258 while an output of the de-glitch module 258 can be coupled to the enable 104 and the inverter 110.

During operation of the analog detector circuit 250, the comparator 256 can measure if a current across the sense resistor 252 exceeds a predefined amount or value. If the comparator 256 determines that the steady state current across the sense resistor 252 exceeds the predefined amount (e.g., 10 mA), the comparator can detect this current condition and can infer that the pin 126 was coupled to either a logic 1 or zero. As such, the comparator can output a signal to the de-glitch module 258. It is pointed out that the de-glitch module 258 can reject current spikes detected by the comparator 256 when the pin 126 switches in normal operation. Therefore, the de-glitch module 258 can output a signal corresponding to the comparator 256 detecting a predefined steady state current condition.

Within FIG. 2A, note that the sense resistor 252 can be implemented in a wide variety of ways. For example in one embodiment, the sense resistor 252 can be implemented with a resistance of 10 ohms, but is not limited to such. Additionally, the drive buffer 254 can be implemented in a variety of ways. For example in one embodiment, the drive buffer 254 can be implemented in a manner similar to the driver circuit 202 described herein, but is not limited to such.

Within FIG. 2A, it is understood that the analog detector 250 may not include all of the elements illustrated by FIG. 2A. Additionally, the analog detector 250 can be implemented to include one or more elements not illustrated by FIG. 2A.

FIG. 3 is schematic diagram of an exemplary continuous detector circuit 300 in accordance with various embodiments of the invention. It is pointed out that the elements of FIG. 3 having the same reference numbers as the elements of any other figure herein can operate or function in any manner similar to that described herein, but are not limited to such. Specifically, the continuous detector circuit 300 can operate in a continuous manner and also includes a debounce functionality. The continuous detector circuit 300 can be coupled to receive a running clock signal 316, which can cause the continuous detector circuit 300 to automatically determine in a periodic manner which communication bus interface (e.g., 102 or 106) is being used by the digital device or circuitry or host system (e.g., memory). It is pointed out that the elements of FIG. 3 having the same reference numbers as the elements of any other figure can operate or function in any manner similar to that described herein, but are not limited to such. In an embodiment, the continuous detector circuit 300 can be an implementation of the detector circuit 114 of FIG. 1.

Specifically, an input/output (I/O) driver circuit 302 and an exclusive OR (XOR) logic gate 304 of the continuous detector circuit 300 can be coupled to the SPI slave interface 102 in order to receive the MISO signal 112 output by it. In an embodiment, in the default state of the intelligent serial interface 101, the SPI slave interface 102 can be enabled and it can drive or output the MISO signal 112. As such, the continuous detector 300 can perform a comparison between the received MISO signal 112 and the actual voltage on the MISO pin 126. Specifically, the XOR gate 304 of the detector circuit 300 can compare the received MISO signal 112 and the actual voltage on the MISO pin 126. If they are different, that can mean that the SPI slave interface 102 is trying to drive the MISO pin 126 in one voltage direction with the MISO signal 112 but the voltage on the MISO pin 126 will not change, which can mean that the MISO pin 126 has been coupled to power or ground since it is not in use. As such, in an embodiment, the continuous detector circuit 300 can disable the SPI slave interface 102 and enable the I²C slave interface 106. However, if the XOR gate 304 compares the received MISO signal 112 and the actual voltage on the MISO pin 126 and they are substantially the same, that can mean that the MISO pin 126 has been coupled to be used with the SPI slave interface 102. As such, in an embodiment, the continuous detector circuit 300 can keep the SPI slave interface 102 enabled while disabling the I²C slave interface 106.

Within FIG. 3, if the received MISO signal 112 and the actual voltage on the MISO pin 126 are substantially the same, the XOR gate 304 can output a logic zero signal, which can be received by the D input of the D flip-flop 306. On receipt of a clock transition of the clock signal 316 at the clock (CLK) input of the D flip-flop 306, the Q-bar output of the D flip-flop 306 can output a logic 1 signal, which can be received by a first input terminal of an OR logic gate 314 and the D input of a D flip-flop 308. On receipt of another clock transition of the clock signal 316 at the clock (CLK) input of the D flip-flop 308, the Q output of the D flip-flop 308 can output a logic 1 signal, which can be received by a second input terminal of the OR logic gate 314 and the D input of a D flip-flop 310. On receipt of yet another clock transition of the clock signal 316 at the clock (CLK) input of the D flip-flop 310, the Q output of the D flip-flop 310 can output a logic 1 signal, which can be received by a third input terminal of the OR logic gate 314 and the D input of a D flip-flop 312. On receipt of still another clock transition of the clock signal 316 at the clock (CLK) input of the D flip-flop 312, the Q output of the D flip-flop 312 can output a logic 1 signal, which can be received by a fourth input terminal of the OR logic gate 314. It is pointed out that as long as the logic 1 signal is a steady state at the D input of the D flip-flop 306, that logic 1 signal can propagate through the D inputs and Q outputs of D flip-flops 306, 308, 310 and 312. Since the OR gate 314 is receiving at least one logic 1 signal during each clock transition of the clock signal 316, the OR gate 314 can output a continuous logic 1 signal that can be received by the inverter 110 and the enable input 104 of the SPI slave interface 102. As such, the SPI slave interface 102 can be enabled while disabling the I²C slave interface 106.

However, if the received MISO signal 112 and the actual voltage on the MISO pin 126 are determined to be different by the XOR gate 304, it can mean that the MISO pin 126 has been coupled to power or ground since it is not being used. As such, the XOR gate 304 can output a logic 1 signal, which can be received by the D input of the D flip-flop 306. On receipt of a clock transition of the clock signal 316 at the clock input of the D flip-flop 306, the Q-bar output of the D flip-flop 306 can output a logic zero signal, which can be received by the first input terminal of the OR logic gate 314 and the D input of the D flip-flop 308. On receipt of another clock transition of the clock signal 316 at the clock input of the D flip-flop 308, the Q output of the D flip-flop 308 can output a logic zero signal, which can be received by the second input terminal of the OR logic gate 314 and the D input of the D flip-flop 310. On receipt of yet another clock transition of the clock signal 316 at the clock input of the D flip-flop 310, the Q output of the D flip-flop 310 can output a logic zero signal, which can be received by the third input terminal of the OR logic gate 314 and the D input of the D flip-flop 312. On receipt of still another clock transition of the clock signal 316 at the clock input of the D flip-flop 312, the Q output of the D flip-flop 312 can output a logic zero signal, which can be received by the fourth input terminal of the OR logic gate 314. It is pointed out that as long as the logic zero signal is a steady state at the D input of the D flip-flop 306, the logic zero signal can propagate through the D inputs and Q outputs of the D flip-flops 306, 308, 310 and 312. Since the OR gate 314 is receiving four logic zero signals after the fourth clock transition of the clock signal 316, the OR gate 314 can output a logic zero signal that can be received by the inverter 110 and the enable input 104 of the SPI slave interface 102. Therefore, the SPI slave interface 102 can be disabled while enabling the I²C slave interface 106.

Within FIG. 3, it is noted that the continuous detector circuit 300 includes a debounce functionality that can be implemented using the D flip-flops 306, 308, 310 and 312 along with the OR gate 314. As such, the continuous detector circuit 300 may not be affected by any transient output by the XOR gate 304. For example in an embodiment, if the OR gate 314 is outputting a steady state logic 1 signal and then it outputs a blip of a logic zero signal, the continuous detector circuit 300 is not be affected by it. Specifically, since the OR gate 314 is receiving at least one logic 1 signal from the D flip-flops 306, 308, 310 and 312 while the logic zero propagated through them, the OR gate 314 will continue to output a logic 1 signal. It is pointed out that the D flip-flops 306, 308, 310 and 312 of the continuous detector circuit 300 can be coupled in series, as shown.

Note that the continuous detector circuit 300 can be implemented in a wide variety of ways. For example in one embodiment, the continuous detector circuit 300 can be implemented with two D flip-flops (e.g., 306 and 308) coupled in series instead of the four D flip-flops 306, 308, 310 and 312 shown. It is noted that the I/O driver (or line driver) circuit 302 can be implemented in a wide variety of ways. For example, in an embodiment in accordance with the invention, the I/O driver circuit 302 can be implemented as a fairly weak driver circuit capable of driving single digit milliamperes either high or low, but is not limited to such. In accordance with this embodiment, it is pointed out that if the I/O driver circuit 302 is coupled externally to power or ground, there would be some current flow, but it would just be a few milliamperes.

Within FIG. 3, an input terminal of the I/O driver 302 can be coupled to receive the MISO signal 112 that can be output by the SPI slave interface 102. An output terminal of the I/O driver 302 can be coupled to the MISO pin 126 of the integrated circuit 100. Additionally, the output terminal of the I/O driver 302 can be coupled to a first input terminal of the XOR gate 304 while a second input terminal of the XOR gate 304 can be coupled to receive the MISO signal 112 output by the SPI slave interface 102. The D input of the D flip-flop 306 can be coupled to the output of the XOR gate 204. The clock input of each of the D flip-flops 306, 308, 310 and 312 can be coupled to receive the clock signal 316. Also, the Q output of the D flip-flop 306 can be coupled to the first input terminal of the OR gate 314 and to the D input of the D flip-flop 308. The Q output of the D flip-flop 308 can be coupled to the second input terminal of the OR gate 314 and to the D input of the D flip-flop 310. Moreover, the Q output of the D flip-flop 310 can be coupled to the third input terminal of the OR gate 314 and to the D input of the D flip-flop 312. Furthermore, the Q output of the D flip-flop 312 can be coupled to the fourth input terminal of the OR gate 314. The output terminal of the OR gate 314 can be coupled to the enable 104 of the SPI slave interface 102 and also to the inverter 110.

Within FIG. 3, it is understood that the continuous detector 300 may not include all of the elements illustrated by FIG. 3. Additionally, the continuous detector 300 can be implemented to include one or more elements not illustrated by FIG. 3.

FIG. 4A is a block diagram of an exemplary system 400 in accordance with various embodiment of the invention. It is pointed out that the elements of FIG. 4 having the same reference numbers as the elements of any other figure herein can operate or function in any manner similar to that described herein, but are not limited to such. Specifically, the system 400 can be implemented to include a Serial Peripheral Interface (SPI) master device 402 and the integrated circuit 100 that includes the intelligent serial interface 101. It is noted that in one embodiment, when the SPI slave interface circuit 102 of the intelligent serial interface 101 is enabled, the integrated circuit 100 can be coupled to the SPI master device 402 as shown.

Specifically, in an embodiment, the SPI master device 402 can include an input 404 that can be coupled to the data pin 126 of the integrated circuit 100. As such, the SPI master device 402 can use the input 404 for receiving a Master Input/Slave Output (MISO) signal (e.g., 112) from the SPI slave interface circuit 102 of the intelligent serial interface 101. Additionally, the SPI master device 402 can include an output 406 that can be coupled to the data pin 128 of the integrated circuit 100. Therefore, the SPI master device 402 can use the output 406 for transmitting a Slave Select signal (SS-bar) (e.g., 116) to the SPI slave interface circuit 102 of the intelligent serial interface 101. Furthermore, the SPI master device 402 can include an output 408 that can be coupled to the data pin 130 of the integrated circuit 100. As such, the SPI master device 402 can use the output 408 for transmitting a SPI Serial Clock (SCK) signal (e.g., 118) to the SPI slave interface circuit 102. Moreover, the SPI master device 402 can include an output 410 that can be coupled to the data pin 132 of the integrated circuit 100. Therefore, the SPI master device 402 can use the output 410 for transmitting a Master Output/Slave Input (MOSI) signal (e.g., 120) to the SPI slave interface circuit 102.

Within FIG. 4A, it is understood that the system 400 may not include all of the elements illustrated by FIG. 4A. Additionally, the system 400 can be implemented to include one or more elements not illustrated by FIG. 4A.

FIG. 4B is a block diagram of another exemplary system 450 in accordance with various embodiment of the invention. Specifically, the system 450 can be implemented to include an Inter-Integrated Circuit (I²C) communication bus master device 452 and the integrated circuit 100 that includes the intelligent serial interface 101. It is noted that in an embodiment, when the I²C slave interface circuit 106 of the intelligent serial interface 101 is enabled, the integrated circuit 100 can be coupled to the I²C master device 452 as shown.

Specifically, in one embodiment, the I²C master device 452 can include an output 454 that can be coupled to the data pin 130 of the integrated circuit 100. As such, the I²C master device 452 can use the output 454 for transmitting an I²C Serial Clock (SCL) signal (e.g., 122) to the I²C slave interface circuit 106 of the intelligent serial interface 101. Additionally, the I²C master device 452 can include an input/output 456 that can be coupled to the data pin 128 of the integrated circuit 100. Therefore, the I²C master device 452 can use the input/output 456 for transmitting and receiving an I²C Serial Data (SDA) signal 124 with the I²C slave interface circuit 106 of the intelligent serial interface 101. It is noted that since the I²C slave interface circuit 106 of the intelligent serial interface 101 does not utilize the pins 126 and 128 of the integrated circuit 100, the pin 126 can be coupled to a voltage source (Vcc) 458 while the pin 128 is not coupled to anything.

Within FIG. 4B, it is understood that the system 450 may not include all of the elements illustrated by FIG. 4B. Furthermore, the system 450 can be implemented to include one or more elements not illustrated by FIG. 4B.

FIG. 5 is a flow diagram of a method 500 in accordance with various embodiments of the invention for automatically detecting between different communication interfaces. Although specific operations are disclosed in method 500, such operations are exemplary. Method 500 may not include all of the operations illustrated by FIG. 5. Also, method 500 may include various other operations and/or variations of the operations shown by FIG. 5. Likewise, the sequence of the operations of method 500 can be modified. It is noted that the operations of method 500 can be performed by software, by firmware, by electronic hardware, by electrical hardware, or by any combination thereof.

Specifically, method 500 can include driving one or more pins of an integrated circuit that can include multiple communication interfaces. It can be determined whether the state of the one or more pins are equal (or similar) to an intended or predefined state. If so, a first communication interface can be enabled using the one or more pins as an output. However, if the one or more pins are not equal to the intended state, a second communication interface can be enabled which does not use the one or more pins. Note that after either communication interface is enabled, process 500 can return to driving the one or more pins of the integrated circuit. In this manner, automatic detection can be performed between different communication interfaces of the integrated circuit.

At operation 502 of FIG. 5, one or more pins (e.g., 126) can be driven of an integrated circuit (e.g., 100) that can include multiple communication interfaces (e.g., 102 and 106). Note that operation 502 can be implemented in a wide variety of ways. For example, operation 502 can be implemented in any manner similar to that described herein, but is not limited to such.

At operation 504, it can be determined whether a state of the one or more pins are equal (or similar) to an intended or predefined state. If so, process 500 can proceed to operation 506. However, if the one or more pins are not equal (or similar) to the intended state at operation 504, process 500 can proceed to operation 508. It is pointed out that operation 504 can be implemented in a wide variety of ways. For example in an embodiment, a detector circuit (e.g., 114) can automatically determine or detect at operation 504 whether the state (or factor) of the one or more pins are equal to (or similar to) a predefined state or factor. Furthermore, the predefined state or factor at operating 504 can include, but is not limited to, a difference in voltage, a difference in current, a difference in signal, a pin of a communication interface not being used, a pin used as an input for one communication interface (e.g., 106) and used as an output for another communication interface (e.g., 102), a difference in pins used by a communication interface, a coupling of a pin of a first communication interface (e.g., 102) that is not used by a second communication interface (e.g., 106), and the like. Operation 504 can be implemented in any manner similar to that described herein, but is not limited to such.

At operation 506 of FIG. 5, a first communication interface (e.g., 102) can be automatically enabled using the one or more pins as an output. Note that a second communication interface (e.g., 106) can also be automatically disabled at operation 506. It is noted that operation 506 can be implemented in a wide variety of ways. For example, operation 506 can be implemented in any manner similar to that described herein, but is not limited to such. At the completion of operation 506, process 500 can proceed to operation 502.

At operation 508, a second communication interface (e.g., 106) can be automatically enabled, but it does not use the one or more pins. It is noted that the first communication interface (e.g., 102) can also be automatically disabled at operation 508. Note that operation 506 can be implemented in a wide variety of ways. For example, operation 508 can be implemented in any manner similar to that described herein, but is not limited to such. At the completion of operation 508, process 500 can proceed to operation 502.

The intelligent communication interface may be used in a touchscreen system as illustrated in FIG. 6, according to one embodiment. Touchscreen system 701 may include a touchscreen/display module 605, which may be coupled to a touch controller 610 and a display controller/driver 615. Touch controller 610 may be configured to measure capacitance on a plurality of electrodes of the touchscreen and to output capacitive or touch information to a host 630. Touch controller 610 may also be configured to receive commands and data from host 730 through a communication interface as described in FIGS. 1-5. The display controller/driver 615 may also receive signals from host 630 regarding what images to project on touchscreen/display 605.

FIG. 7 illustrates one embodiment of a touchscreen system 701. A touchscreen 710 may be coupled to a sensing IC 715 though pins 712.1-712.N. Sensing IC 715 may comprise a sensing channel 720 coupled to touchscreen electrodes of touchscreen 710. Sensing channel 720 may be configured to convert capacitances of the touchscreen electrodes to digital values for use in touch or proximity detection. In one embodiment, the output of channel 720 may be sent to CPU 740 for processing and then either communicated to a host 760 through communication interface 750 or stored in a memory 730 and communicated to host 760 through communication interface 750 from memory 730. In another embodiment, the output of channel 720 may be stored in memory 730 directly (before processing by CPU 740) and either processed by CPU 740 from memory 730 and then communicated to host 760 through communication interface 750 or communicated to host 760 from memory 730 through communication interface 750 without CPU intervention. Tuning and calibration routines may be stored in memory 730 and implemented by CPU 740 through tuning block 714. Calibration of signals from touchscreen 710 through and by channel 720 may provide capacitance measurement data with greater signal-to-noise ratios and fidelity to user interactions.

FIG. 8 illustrates an array of electrodes 801 which may be disposed over a display as part of touchscreen/display 605 of FIG. 6. A first plurality of electrodes 810 may be disposed on a substrate (not shown) along a first axis. A second plurality of electrodes 820 may be disposed on a substrate along a second axis. Electrodes 810 and 820 may be bar-shaped in one embodiment. In another embodiment, electrodes 810 and 820 may have more complex structures that are based on the bar-shaped theme. Close-up 825 illustrates the intersection between the first plurality of electrodes 810 and the second plurality of electrodes 820. There may exist a mutual capacitance at the intersection an electrode from the first plurality of electrodes 810 and an electrode of the second plurality of electrodes 820 and this region of mutual capacitance may be described as a unit cell 830 of the array of electrodes 801. Unit cells exist at every intersection and may be used to detect the location of a conductive object.

Unit cells such as unit cell 830 and their measured capacitance values may be used to detect the location of one or more conductive objects on or near a surface contacted by a user. An array of unit cells may be used to detect one or more conductive objects of various types, including bare fingers, gloved fingers, styli (either active or passive) or an object hover above the surface. Unit cells may be used individually, in combination, or both to determine object and interaction type.

Unit cells such as unit cell 830 may be conceptualized geometrically as the smallest unit of tessellation. That is, the smallest repeatable unit of measurement on the array. Unit cells such as unit cell 830 may also be conceptualized by stating that every point within the unit cell is closer to the center of that unit cell (the center of the intersection between the electrodes on different axes) than it is to the center of any other unit cell. Unit cells such as unit cell 830 may be conceptualized functionally as the native resolution of an array of electrodes, such as electrodes 810 and 820. That is, each row and column may be identified and a position defined on each row and column. For a rectangular array with twelve columns and nine rows, there may be 108 discrete locations. Since unit cell 830 exists between the seventh row (from the top) and the sixth column (from the left) and unit cell 830 exists at the intersection between the sixth row and the sixth column, their positions may be given by 6,7 and 6,6, respectively, based on the native resolution of an array of electrodes, such as electrodes 810 and 820. Unit cells such as unit cell 830 may be conceptualized as pixels of an array, wherein each pixel may be assigned a location and a measurable value specific to that location. Unit cells may also be referred to as “nodes” wherein each intersection of the row and column electrodes is a node of the array. Unit cells may be referred merely as intersections in a mutual capacitance sensing array. The term “intersection” is merely shorthand for their construction as an intersection between row and column electrodes.

The foregoing descriptions of various specific embodiments in accordance with the invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The invention can be construed according to the Claims and their equivalents. 

What is claimed is:
 1. A circuit comprising: a first communication interface circuit for enabling a first communication protocol; a second communication interface circuit for enabling a second communication protocol; and a detector circuit coupled to the first communication interface circuit and the second communication interface circuit, the detector circuit for automatically detecting a factor that indicates automatically enabling the first communication interface circuit and automatically disabling the second communication interface circuit, wherein the detector circuit is for detecting a coupling of an output pin of the first communication interface circuit to a fixed voltage source, wherein the output pin of the first communication interface circuit is not used by the second communication interface circuit, and wherein the fixed voltage source represents a logic 0 or logic
 1. 2. The circuit of claim 1 further comprising capacitance measurement circuitry configured to convert a capacitance of at least one capacitance measurement electrode to a digital value, wherein the digital value is communicated to a host through the first or second communication interface circuits.
 3. The circuit of claim 2, wherein the at least one capacitance measurement electrode is one of a plurality of capacitance measurement electrodes in an array.
 4. The circuit of claim 1, wherein the first communication interface circuit comprises a Serial Peripheral Interface (SPI) bus slave interface.
 5. The circuit of claim 1, wherein the second communication interface circuit comprises an Inter-Integrated Circuit (I²C) bus slave interface.
 6. The circuit of claim 1, wherein the factor comprises a voltage difference.
 7. The circuit of claim 1, wherein the factor comprises a signal difference.
 8. A touch sensing device comprising: a measurement circuit configured to convert a capacitance on at least one capacitance measurement electrode to a digital value; and a communication circuit comprising: a first interface circuit for enabling a first communication protocol, a second interface circuit for enabling a second communication protocol, and a detector circuit coupled to the first interface circuit and the second interface circuit, the detector circuit for automatically detecting a factor that indicates automatically enabling the first interface circuit and automatically disabling the second interface circuit, wherein the detector circuit is for detecting a coupling of an output pin of the first interface circuit to a fixed voltage source, wherein the output pin of the first interface circuit is not used by the second interface circuit, and wherein the fixed voltage source represents a logic 0 or logic
 1. 9. The touch sensing device of claim 8 wherein the first interface circuit comprises a Serial Peripheral Interface (SPI) bus slave interface.
 10. The touch sensing device of claim 9, wherein the second communication interface circuit comprises an Inter-Integrated Circuit (I²C) bus slave interface. 